package io;

import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

/**
 * 缓冲输出流的写缓冲问题
 */
public class FlushDemo {
    public static void main(String[] args) throws IOException {
        FileOutputStream fos = new FileOutputStream("bos.txt");
        BufferedOutputStream bos = new BufferedOutputStream(fos);
        String line = "我对镜遮掩那风雨漂泊的残漏碑已旧";
        byte[] data = line.getBytes(StandardCharsets.UTF_8);
        //fos.write(data);
        bos.write(data);//运行无效，上边几个字都不够8KB
        /**
         * flush:冲水

           flush()方法用于清空缓冲区，将缓冲输出流内部缓冲区中已经缓存的数据一次性写出

           flush方法是定义在Flusable接口上的，而字节输出流的超类OutputStream实现了
           该接口，
         */
        //bos.flush();//这样运行就有效了
        System.out.println("输出完毕");
        bos.close();
        //缓冲流的close方法，其源代码中发现，它最后会进行一次flush动作
    }
}
